package com.hui.server.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.hui.server.entity.Employee;
import com.hui.server.util.RespPageBean;
import com.hui.server.util.Result;

import java.time.LocalDate;
import java.util.List;


/**
 * <p>
 *  服务类
 * </p>
 *
 * @author hui
 * @since 2022-03-31
 */
public interface EmployeeService extends IService<Employee> {


    /**
     * 分页查询所有员工，并且按照指定条件查询
     * @param currentPage
     * @param size
     * @param employee
     * @param beginDateScope
     * @return
     */
    RespPageBean getEmployeeByPage(Integer currentPage, Integer size, Employee employee, LocalDate[] beginDateScope);

    /**
     * 返回数据库中最大工号再加一，用于新增员工
     * @return
     */
    Result<?> maxWorkId();

    /**
     * 添加员工
     * @param employee
     * @return
     */
    Result<?> insertEmployee(Employee employee);

    /**
     *  传入id如果存在，则按id查员工，否则查所有；需要对应填充员工employee表的其他表字段（主要是其他的表字段太多）
     * @param o
     * @return
     */
    List<Employee> getAllEmployeeOrOneById(Integer id);

    /**
     * 获取员工、员工的套账信息，带部门信息
     * @param currentPage
     * @param size
     * @return
     */
    RespPageBean getEmployeeWithSalary(Integer currentPage, Integer size);
}
